(deftemplate Pacient
	(slot nume)
    (slot temperatura)
    (slot tusa)
    (slot culoarePiele)
    (slot dureriDeCap)    
    (slot dureriDeBurta)
    (slot dureriDeDinti)
    (slot dureriToracice)
    (slot dureriDeSpate)
    (slot ameteli)
    (slot varsaturi)
)

(deffacts pacienti
	(Pacient 
        (nume Marius)(temperatura 37)(tusa da)(culoarePiele normala)(dureriDeCap da)(dureriDeBurta nu)(dureriDeDinti nu)(dureriToracice nu)(dureriDeSpate nu)(ameteli nu)(varsaturi da)
    )    
    
  (Pacient 
        (nume Ion)(temperatura 38)(tusa da)(culoarePiele normala)(dureriDeCap da)(dureriDeBurta da)(dureriDeDinti nu)(dureriToracice nu)(dureriDeSpate nu)(ameteli da)(varsaturi nu)
    )       
(Pacient 
        (nume Maria)(temperatura 37)(tusa da)(culoarePiele normala)(dureriDeCap nu)(dureriDeBurta nu)(dureriDeDinti nu)(dureriToracice da)(dureriDeSpate nu)(ameteli nu)(varsaturi nu)
    )   
(Pacient 
        (nume Andrei)(temperatura 38)(tusa da)(culoarePiele normala)(dureriDeCap nu)(dureriDeBurta nu)(dureriDeDinti da)(dureriToracice nu)(dureriDeSpate nu)(ameteli nu)(varsaturi da)
    )    
(Pacient 
        (nume Flavius)(temperatura 37)(tusa da)(culoarePiele normala)(dureriDeCap da)(dureriDeBurta nu)(dureriDeDinti nu)(dureriToracice da)(dureriDeSpate nu)(ameteli da)(varsaturi nu)
    )  
    )  

(defrule raceala
    ?id <-(Pacient
    	(nume ?n)
        (temperatura ?t)    
        (tusa da)
        (culoarePiele normala)
        (dureriDeCap da)
        (dureriDeBurta nu)
        (dureriDeDinti nu)
        (dureriToracice nu)
        (dureriDeSpate nu)
        (ameteli da)
        (varsaturi nu)
    )
    
    (test (> ?t 36))
    
    =>
    
    (printout t "Pacientul "?n" are raceala!" crlf)
)

(defrule reumatism
    (Pacient
    	(nume ?n)
        (dureriDeSpate da)

    )
    
    =>
    
    (printout t "Pacientul "?n" are reumatism!" crlf)
)

(defrule pneumonie
    (declare (salience 0))
    (Pacient
    	(nume ?n)
        (temperatura 37 | 38 | 39)    
        (tusa da)
        (culoarePiele normala)
        (dureriDeCap da)
        (dureriDeBurta nu)
        (dureriDeDinti nu)
        (dureriToracice nu)
        (dureriDeSpate nu)
        (ameteli da)
        (varsaturi da)
    )
    
    =>
    
    (printout t "Pacientul "?n" are pneumonie !" crlf)    
)

(defrule pneumonieAcuta
	(declare (salience 3))
    ?id <- (Pacient
    		(nume ?n)
        	(temperatura ?t)    
        	(tusa da)
        	(culoarePiele normala)
        	(dureriDeCap da)
        	(dureriDeBurta nu)
        	(dureriDeDinti nu)
        	(dureriToracice nu)
        	(dureriDeSpate nu)
        	(ameteli da)
        	(varsaturi da)
    )
    
    (test (> ?t 38))
    
    =>
    
    (printout t "Pacientul "?n" are pneumonie acuta!" crlf)    
    (retract ?id)
)





(run)
